using System;
using System.Collections.Generic;

namespace ShouldIt.Core
{
    public interface IAssertProvider
    {
        void AreEqual(object expected, object actual);
        void AreNotEqual(object expected, object actual);
        void IsNotNull(object obj);
        void IsNull(object value);
        void IsFalse(bool value);
        void IsTrue(bool value);
        void Fail(string messageFormat, params object[] args);
        void Contains<T>(T item, IEnumerable<T> enumerable);
        void NotContains<T>(T item, IEnumerable<T> enumerable);
        void Greater(int left, int right);
        void GreaterOrEqual(int left, int right);
        void AreSame(object expected, object actual);
        void AreNotSame(object expected, object actual);
        void IsSubstringOf(string actual, string expectedSubstring);
        void IsInstanceOfType(object actual, Type expectedType);
        void IsNotInstanceOfType(object actual, Type expectedType);
    }
}